<?php

class Pelatihan_con extends CI_Controller {

    public function __construct() {
        parent::__construct();
    }

    public function index() {
        //default halaman yang ditampilkan, 
        //rencananya adalah menampilkan tabel daftar pelatihan yang udah ada
        $this->tampil_pelatihan();
    }

    public function tampil_pelatihan($jenis='', $seri='') {
        //menampilkan daftar pelatihan dalam bentuk tabel
        //memiliki parameter untuk filter berdasarkan seri atau jenis pelatihan
        //jika parameter tidak ada, akan ditampilkan semuanya (select *)
        //pada saat menampilkan, ada tombol untuk edit, hapus, lihat
        //tambahkan tombol untuk menambahkan pelatihan baru
        if ($seri == 'Semua') {
            $seri = '';//untuk memudahkan pengecekan, pilihan semua dijadikan tidak memilih filter
        } else {
            $seri = str_replace('%20', ' ', $seri);//dari url, spasi ditulis dengan %20, jadi disini diganti lagi %20 dengan spasi            
        }
        if ($jenis == 'Semua') {
            $jenis = '';//untuk memudahkan pengecekan, pilihan semua dijadikan tidak memilih filter
        } else {
            $jenis = str_replace('%20', ' ', $jenis);//dari url, spasi ditulis dengan %20, jadi disini diganti lagi %20 dengan spasi
        }
        /*Bagian ini merupakan pengecekan kondisi untuk filtering*/
        if ($seri != "" && $jenis != "") {
            //User memfilter dari seri dan jenis sekaligus
            $query = $this->db->get_where('pelatihan', array('SERI_PELATIHAN' => $seri, 'JENIS' => $jenis));
        } else if ($seri != "" && $jenis == "") {
            //User hanya memfilter berdasarkan seri
            $query = $this->db->get_where('pelatihan', array('SERI_PELATIHAN' => $seri));
        } else if ($jenis != "" && $seri == "") {
            //User hanya memfilter berdasarkan jenis
            $query = $this->db->get_where('pelatihan', array('JENIS' => $jenis));
        } else {
            //User tidak melakukan filter (memilih semua di pilihan jenis dan seri)
            $query = $this->db->get('pelatihan');
        }
        $display['select_seri']=$seri;
        $display['select_jenis']=$jenis;
        if ($query->num_rows() > 0) { //Jika pelatihan dengan filter didapatkan dari database
            //Melakukan pembuatan tabel dengan library tabel yang sudah ada di CI
            $this->load->library('table');
            $this->table->set_template(array('table_open' => '<table border="1" cellpadding="0" cellspacing="3" width="1300">'));
            $this->table->set_heading('NO', 'KODE', 'NAMA', 'SERI', 'JENIS', 'AKSI');
            $i = 1;
            foreach ($query->result() as $entry) {
                $this->table->add_row(
                        $i, $entry->KODE_PELATIHAN, $entry->NAMA_PELATIHAN, $entry->SERI_PELATIHAN, $entry->JENIS, anchor(base_url() . 'admin/pelatihan_con/update_pelatihan/' . $entry->KODE_PELATIHAN, 'Edit') .
                        ' | ' .
                        anchor(base_url() . 'admin/pelatihan_con/hapus_pelatihan/' . $entry->KODE_PELATIHAN, 'Delete') .
                        ' | ' .
                        anchor(base_url() . 'admin/pelatihan_con/view/' . $entry->KODE_PELATIHAN, 'View') .
                        ' | ' .
                        anchor(base_url() . 'admin/kelas_con/buka_kelas/' . $entry->KODE_PELATIHAN, 'Buka Kelas') .
						' | ' .
                        anchor(base_url() . 'admin/pelatihan_con/upload_logo/' . $entry->KODE_PELATIHAN, 'Upload Logo') .
						' | ' .
                        anchor(base_url() . 'admin/pelatihan_con/upload_brosur/' . $entry->KODE_PELATIHAN, 'Upload Brosur')
						);
                $i++;
            }
            $display['content'] = $this->table->generate();
        } else { //Jika pelathan dengan filter tidak didapatkan
            $display['content'] = '<h3>Belum ada pelatihan yang dimasukkan</h3>';
        }
        $query_jenis = $this->db->get('jenis_pelatihan');
        $query_seri = $this->db->get('seri_pelatihan');
        $display['jenis']['Semua'] = 'Semua';
        foreach ($query_jenis->result() as $row)
            $display['jenis'][$row->NAMA_JENIS] = $row->NAMA_JENIS;
        $display['seri']['Semua'] = 'Semua';
        foreach ($query_seri->result() as $row)
            $display['seri'][$row->NAMA_SERI] = $row->NAMA_SERI;
        $data['title'] = "Daftar Pelatihan";
        $this->load->view('admin/admin_header_view', $data);
        $this->load->view('admin/pelatihan_display', $display);
        $this->load->view('footer_view');
    }

    public function filter_tampil_pelatihan() {
        //fungsi ini hanya untuk melakukan redirect setelah difilter
        $jenis = $this->input->post('JENIS');
        $seri = $this->input->post('SERI');
        redirect(base_url() . 'admin/pelatihan_con/tampil_pelatihan/' . $jenis . '/' . $seri);
    }

    public function tambah_pelatihan() {
        //menampilkan form untuk memasukkan data-data pelatihan
        $this->load->library('wysiwyg');
        $this->load->library('simple_effect');
        $temp1 = $this->wysiwyg->loadScript();
        $temp2 = $this->simple_effect->hide_web_part('error_message','sembunyi');
        $data['script']=$temp1.$temp2;
        $data['title'] = 'Buat Pelatihan';

        $this->load->library('form_validation'); //meload library untuk validasi form
        $this->form_validation->set_rules('KODE_PELATIHAN', 'Kode', 'required');
        $this->form_validation->set_rules('NAMA_PELATIHAN', 'Nama', 'required');
        $this->form_validation->set_rules('JENIS', 'Jenis', 'required');
        $this->form_validation->set_rules('SERI_PELATIHAN', 'Seri', 'required');
        if ($this->form_validation->run() == FALSE) {
            $query_jenis = $this->db->get('jenis_pelatihan');
            $query_seri = $this->db->get('seri_pelatihan');
            if ($query_jenis->num_rows() > 0) {
                $isi['ada_jenis'] = TRUE;
                foreach ($query_jenis->result() as $row) {
                    $isi['jenis'][$row->NAMA_JENIS] = $row->NAMA_JENIS;
                }
            } else {
                $isi['ada_jenis'] = FALSE;
            }
            if ($query_seri->num_rows() > 0) {
                $isi['ada_seri'] = TRUE;
                foreach ($query_seri->result() as $row)
                    $isi['seri'][$row->NAMA_SERI] = $row->NAMA_SERI;
            } else {
                $isi['ada_seri'] = FALSE;
            }

            $this->load->view('admin/admin_header_view', $data);
            $this->load->view('admin/pelatihan_form', $isi);
            $this->load->view('footer_view');
        } else {
            $this->db->insert('pelatihan', $_POST);
            redirect('admin/pelatihan_con/tampil_pelatihan');
        }
    }

    public function hapus_pelatihan($kode) {
        //menghapus pelatihan dengan penanda $kode
        //jika sukses menghapus, akan kembali ke halaman tampil_pelatihan
        $this->db->delete('pelatihan', array('KODE_PELATIHAN' => $kode));
        redirect('admin/pelatihan_con/tampil_pelatihan');
    }

    public function update_pelatihan($kode) {
        //mengupdate data-data yang ada pada pelatihan
        //jika sukses kembali ke halaman tampil_pelatihan
        $query = $this->db->get_where('pelatihan', array('KODE_PELATIHAN' => $kode));
        if ($query->num_rows() > 0) {
            $row = $query->row();
            $display['content']['KODE_PELATIHAN'] = $row->KODE_PELATIHAN;
            $display['content']['NAMA_PELATIHAN'] = $row->NAMA_PELATIHAN;
            $display['content']['JENIS'] = $row->JENIS;
            $display['content']['SERI_PELATIHAN'] = $row->SERI_PELATIHAN;
            $display['content']['PREVIEW'] = $row->PREVIEW;
            $display['content']['DESKRIPSI'] = $row->DESKRIPSI;
            $display['content']['OBJECTIVE'] = $row->PREREQ;
            $display['content']['TOOLS'] = $row->TOOLS;
            $display['content']['REL_COURSE'] = $row->REL_COURSE;
            $display['content']['PREREQ'] = $row->PREREQ;
            $query_jenis = $this->db->get('jenis_pelatihan');
            $query_seri = $this->db->get('seri_pelatihan');
            foreach ($query_jenis->result() as $row)
                $display['jenis'][$row->NAMA_JENIS] = $row->NAMA_JENIS;
            foreach ($query_seri->result() as $row)
                $display['seri'][$row->NAMA_SERI] = $row->NAMA_SERI;
            $this->load->library('wysiwyg');
            $data['script'] = $this->wysiwyg->loadScript();
            $data['title'] = 'Buat Pelatihan';
            $this->load->view('admin/admin_header_view', $data);
            $this->load->view('admin/pelatihan_edit', $display);
            $this->load->view('footer_view');
        } else {
            redirect('admin/pelatihan_con/tampil_pelatihan');
        }
    }

    public function update() {
        //memasukkan data updatean ke dalam database
        //jika sukses dimasukkan, akan kembali ke halaman tempil_pelatihan
        $nama = $this->input->post('NAMA_PELATIHAN');
        if ($nama != '') {
			$kode  =$_POST['KODE_PELATIHAN'];
			unset ($_POST['KODE_PELATIHAN']);
            $this->db->where('KODE_PELATIHAN',$kode);
			$this->db->update('pelatihan', $_POST);
            redirect('admin/pelatihan_con/tampil_pelatihan');
        } else {
            echo 'Edit data gagal, nama pelatihan tidak diisi<br/>';
            echo '<a href="javascript:back()">Kembali</a>';
        }
    }

    public function view($kode) {
        //fungsi ini digunakan untuk melihat entry pelatihan
        $query = $this->db->get_where('pelatihan', array('KODE_PELATIHAN' => $kode));
        if ($query->num_rows() > 0) {
            $row = $query->row();
            $this->load->library('table');
            $this->table->set_template(array('table_open' => '<table border="0" cellpadding="4" cellspacing="3">'));
            $this->table->add_row('<img src="' . $row->LOGO.'"/>');
			$this->table->add_row('<b>Kode pelatihan</b> : ' . $row->KODE_PELATIHAN);
            $this->table->add_row('<b>Nama pelatihan</b> : ' . $row->NAMA_PELATIHAN);
			$this->table->add_row('<b>Preview pelatihan</b>');
            $this->table->add_row($row->PREVIEW);
            $this->table->add_row('<b>Deskripsi pelatihan</b>');
            $this->table->add_row($row->DESKRIPSI);
            $this->table->add_row('<b>Objective</b>');
            $this->table->add_row($row->OBJECTIVE);
            $this->table->add_row('<b>Tools</b>');
            $this->table->add_row($row->TOOLS);
            $this->table->add_row('<b>Objective</b>');
            $this->table->add_row($row->OBJECTIVE);
            $this->table->add_row('<b>Prerequisite</b>');
            $this->table->add_row($row->PREREQ);
            $this->table->add_row('<b>Related Course</b>');
            $this->table->add_row($row->REL_COURSE);
            $this->table->add_row('<b>Jenis</b> : ' . $row->JENIS);
            //$this->table->add_row();
            $this->table->add_row('<b>Seri</b> : ' . $row->SERI_PELATIHAN);
            //$this->table->add_row();
            $data['title'] = "Pelatihan " . $kode;
            $this->load->view('admin/admin_header_view', $data);
            $display['kode'] = $kode;
            $display['content'] = $this->table->generate();
            $this->load->view('admin/pelatihan_view', $display);
            $this->load->view('footer_view');
        } else {
            $display['content'] = '<h3>Tidak ada pelatihan dnegan kode ' . $kode . '</h3>';
        }
    }
    
    //Bagian ini berhubungan dengan konfigurasi jenis pelatihan
    public function disp_jenis_pelatihan() {
        $data['title'] = "Jenis Pelatihan";
        $query_jenis = $this->db->get('jenis_pelatihan');

        if ($query_jenis->num_rows() > 0) {
            $isi['ada_jenis'] = TRUE;
            foreach ($query_jenis->result() as $row) {
                $isi['jenis'][$row->NAMA_JENIS] = $row->NAMA_JENIS;
                $isi['deskripsi'][$row->NAMA_JENIS] = $row->DESKRIPSI_JENIS;
            }
        } else {
            $isi['ada_jenis'] = FALSE;
        }

        $this->load->view('admin/admin_header_view', $data);
        $this->load->view('admin/jenis_pelatihan_view', $isi);
        $this->load->view('footer_view');
    }

    public function insert_jenis_pelatihan() {
        $jenis = $this->input->post('NAMA_JENIS');
        $deskripsi = $this->input->post('DESKRIPSI_JENIS');
        if ($jenis != '')
            $this->db->insert('jenis_pelatihan', array('NAMA_JENIS' => $jenis, 'DESKRIPSI_JENIS' => $deskripsi));
        redirect(base_url() . 'admin/pelatihan_con/disp_jenis_pelatihan');
    }

    public function delete_jenis_pelatihan($nama) {
        $nama = str_replace('%20', ' ', $nama);
        $query = $this->db->get_where('pelatihan', array('JENIS' => $nama));
        if ($query->num_rows() == 0) {
            $this->db->delete('jenis_pelatihan', array('NAMA_JENIS' => $nama));
            redirect(base_url() . 'admin/pelatihan_con/disp_jenis_pelatihan');
        } else {
            echo 'Hapus jenis gagal, masih ada pelatihan yang menggunakan jenis ini<br/>';
            echo '<a href="javascript:back()">Kembali</a>';
        }
    }
    
    public function edit_jenis_pelatihan($jenis){
        //Fungsi ini akan menampilkan form untuk edit jenis
        //ketika disubmit, akan menuju fungsi edit_jenis
        $jenis = str_replace('%20', ' ', $jenis);//dari url, spasi ditulis dengan %20, jadi disini diganti lagi %20 dengan spasi 
        $query=$this->db->get_where('jenis_pelatihan',array('NAMA_JENIS'=>$jenis));
        $row=$query->row();
        $content['NAMA_JENIS']=$row->NAMA_JENIS;
        $content['DESKRIPSI_JENIS']=$row->DESKRIPSI_JENIS;
        $this->load->view('admin/admin_header_view');
        $this->load->view('admin/edit_jenis_view',$content);
        $this->load->view('footer_view');
    }

    public function edit_jenis($nama_lama){
        //Fungsi ini akan melakukan pengecekan terhadap editan user
        //Jika gagal, akan tampil pesan kesalahan dan tombol back
        //Jika sukses, data-data dari form diambil dengan method POST
        //dan langsung dilakukan update di database serta
        //user akan diredirect ke disp_jenis_pelatihan
        $nama_lama = str_replace('%20', ' ', $nama_lama);
        $nama = $this->input->post('NAMA_JENIS');
        if($nama!=''){
            $this->db->update('jenis_pelatihan',$_POST);
            $this->db->where('JENIS',$nama_lama);
            $this->db->update('pelatihan',array('JENIS'=>$nama));
            redirect(base_url().'admin/pelatihan_con/disp_jenis_pelatihan');
        }else{
            echo 'Harap isi nama jenis ';
            echo '<a href="javascript:back()">Kembali</a>';
        }
    }
    
    //Bagian ini berhubungan dengan konfigurasi seri pelatihan
    public function disp_seri_pelatihan() {
        $data['title'] = "Seri Pelatihan";
        $query_seri = $this->db->get('seri_pelatihan');
        if ($query_seri->num_rows() > 0) {
            $isi['ada_seri'] = TRUE;
            foreach ($query_seri->result() as $row) {
                $isi['seri'][$row->NAMA_SERI] = $row->NAMA_SERI;
            }
        } else {
            $isi['ada_seri'] = FALSE;
        }
        $this->load->view('admin/admin_header_view', $data);
        $this->load->view('admin/seri_pelatihan_view', $isi);
        $this->load->view('footer_view');
    }

    public function insert_seri_pelatihan() {
        $seri = $this->input->post('NAMA_SERI');
        if ($seri != '')
            $this->db->insert('seri_pelatihan', array('NAMA_SERI' => $seri));
        redirect(base_url() . 'admin/pelatihan_con/disp_seri_pelatihan');
    }

    public function delete_seri_pelatihan($nama) {
        $nama = str_replace('%20', ' ', $nama);
        $query = $this->db->get_where('pelatihan', array('SERI_PELATIHAN' => $nama));
        if ($query->num_rows() == 0) {
            $this->db->delete('seri_pelatihan', array('NAMA_SERI' => $nama));
            redirect(base_url() . 'admin/pelatihan_con/disp_seri_pelatihan');
        } else {
            echo 'Hapus seri gagal, masih ada pelatihan yang menggunakan jenis ini<br/>';
            echo '<a href="javascript:back()">Kembali</a>';
        }
    }
    
    public function edit_seri_pelatihan($seri){
        //Fungsi ini akan menampilkan form untuk edit seri
        //Jika submit ditekan, akan ke menu edit_seri
        $seri = str_replace('%20', ' ', $seri);//dari url, spasi ditulis dengan %20, jadi disini diganti lagi %20 dengan spasi 
        $query=$this->db->get_where('seri_pelatihan',array('NAMA_SERI'=>$seri));
        $row=$query->row();
        $content['NAMA_SERI']=$row->NAMA_SERI;
        $this->load->view('admin/admin_header_view');
        $this->load->view('admin/edit_seri_view',$content);
        $this->load->view('footer_view');
    }
    
    public function edit_seri($seri_lama){
        //Fungsi ini akan melakukan pengecekan terhadap editan user
        //Jika gagal, akan tampil pesan kesalahan dan tombol back
        //Jika sukses, data-data dari form diambil dengan method POST
        //dan langsung dilakukan update di database serta
        //user akan diredirect ke disp_seri_pelatihan
        $seri_lama = str_replace('%20', ' ', $seri_lama);
        $seri = $this->input->post('NAMA_SERI');
        if($seri!=''){
            $this->db->update('seri_pelatihan',$_POST);
            $this->db->where('SERI_PELATIHAN',$seri_lama);
            $this->db->update('pelatihan',array('SERI_PELATIHAN'=>$seri));
            redirect(base_url().'admin/pelatihan_con/disp_seri_pelatihan');
        }else{
            echo 'Harap isi nama seri ';
            echo '<a href="javascript:back()">Kembali</a>';
        }
    }
	
	public function upload_logo($kode){
		$data['KODE']=$kode;
		$this->load->view('admin/admin_header_view');
		$this->load->view('admin/logo_pelatihan',$data);
		$this->load->view('footer_view');
	}
	
	public function upload_logo_process(){
		$kode = $_POST['KODE'];
		
		
		$pecah = explode('.', $_FILES['logo']['name']);			
		$file_ext =  $pecah[count($pecah)-1];
		$_FILES['logo']['name']=$kode.'.'.$file_ext;

		$config['upload_path'] = './logo/';
		$config['overwrite'] = true;
		$config['allowed_types'] = 'gif|jpg|png';

		$this->load->library('upload', $config);
		if ( !$this->upload->do_upload('logo')){
			echo $this->upload->display_errors().'<br/>Pilih back';
		}else{
			$dataupload=$this->upload->data();



			$absolute_path= base_url().'logo/'.$dataupload['file_name'];
			$query = $this->db->query('UPDATE pelatihan SET LOGO="'. $absolute_path .'" WHERE KODE_PELATIHAN = "'.$kode.'"');

			redirect(base_url().'admin/pelatihan_con/view/'.$kode);
		}
	}
	
	public function upload_brosur($kode){
		$data['KODE']=$kode;
		$this->load->view('admin/admin_header_view');
		$this->load->view('admin/brosur_pelatihan',$data);
		$this->load->view('footer_view');
	}
	
	public function upload_brosur_process(){
		$kode = $_POST['KODE'];
		
		
		$pecah = explode('.', $_FILES['logo']['name']);			
		$file_ext =  $pecah[count($pecah)-1];
		$_FILES['logo']['name']=$kode.'.'.$file_ext;

		$config['upload_path'] = './brosur/';
		$config['overwrite'] = true;
		$config['allowed_types'] = 'pdf';

		$this->load->library('upload', $config);
		if ( !$this->upload->do_upload('logo')){
			echo $this->upload->display_errors().'<br/>Pilih back';
		}else{
			$dataupload=$this->upload->data();



			$absolute_path= base_url().'brosur/'.$dataupload['file_name'];
			$query = $this->db->query('UPDATE pelatihan SET BROSUR="'. $absolute_path .'" WHERE KODE_PELATIHAN = "'.$kode.'"');

			redirect(base_url().'admin/pelatihan_con/view/'.$kode);
		}
	}
}

?>
